#创建浏览器对象
import datetime
import os.path
import sys

from selenium import webdriver
from selenium.webdriver.ie.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

class Driver:
    driver=''
    def __init__(self):
        # 1. 设置本地 Chrome 驱动路径
        chrome_driver_path = "F:/test/chromedriver-win64/chromedriver.exe"  # 替换为你的驱动路径

        # 2. 增加浏览器配置，创建驱动对象强制指定允许访问所有的链接
        chrome_options = Options()
        chrome_options.add_argument("--remote-allow-origins=*")

        # 3. 创建 WebDriver 对象
        self.driver = webdriver.Chrome(service=Service(chrome_driver_path), options=chrome_options)




    # options=webdriver.ChromeOptions()
    # self.driver=webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)

    def getScreenshort(self):


#创建屏幕截图

    # 获取调用者信息（测试函数名和页面名）
         caller_frame=sys._getframe().f_back    # 获取调用者的栈帧
         test_func_name=caller_frame.f_code.co_name # 测试函数名
         page_name=caller_frame.f_locals.get('self').__class__.__name__   # 页面类名
     # 生成目录结构：../images/日期/页面名/测试函数名/
         date_dir = datetime.datetime.now().strftime("%Y-%m-%d")
         base_path =os.path.join("..","images",date_dir,page_name,test_func_name)

     # 递归创建目录（如果不存在）
         os.makedirs(base_path,exist_ok=True)
     # 生成带时间戳的文件名
         timestamp=datetime.datetime.now().strftime("%H-%M-%S")
         filename=f"{test_func_name}_{timestamp}.png"
         full_path=os.path.join(base_path,filename)
         self.driver.save_screenshot(full_path)
         print(f"截图已保存至：{full_path}")



BlogDriver=Driver()
